package jers;

import jers.util.Daemon;
/**
 * Interface para um objeto {@link Provider}.
 * <p>
 * Este objeto implementa o provedor de servicos utilizado no sistema, 
 * que deve rodar do lado do servidor. Ele deve ser capaz de registrar 
 * os servicos e disponibiliza-los para execucao remota.
 * <br>
 * Uma instancia do objeto {@link Provider} pode ser construida pela 
 * fabrica {@link Factory}.
 * <br>
 * Um {@link Provider} e basicamente um objeto que implementa 
 * a interface {@link Runnable}.  
 * </p>
 * 
 * @see {@link Factory}, {@link Runnable}
 * 
 * @author 
 * 		<a href="mailto:felipe.zappala@gmail.com">
 * 			Luis Felipe Zappala
 * 		</a> [ <a href="http://lncc.br/ist">ISTCC-P</a> / 2009 ]
 */
public interface Provider extends Daemon {

	/**
	 * Inicia a execucao do provedor de servicos {@link Provider}.
	 */
	public void start();
	
	/**
	 * Finaliza a execucao do provedor de servicos {@link Provider}.
	 */
	public void stop();
	
}
